iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
0
自我挑戰組

Kaggle的解題挑戰 2018版系列 第 15

[Day16] Kaggle的解題挑戰 2018版 - Python 迴圈 (1)

  • 分享至 

  • xImage
  •  

在這簡單講一下在Python中怎麼寫迴圈吧,如果你學過C/C++, C#, Java, or JavaScript等等,會發現,Python在迴圈的撰寫方式是不同的,另外,我也想講一下怎麼怎麼從容器取值然後去跑迴圈,不過容器現在還沒講到,不過有些底子的應該會看懂我在寫什麼XD,先來看看一個最基本的例子吧,如何寫一個從一加到一百的迴圈。

words = ['this', 'is', 'a', 'test']
for w in words:
    print(w, len(w))

這是第一個example,就是把words arrays中的字和長度都印出來。

words = ['this', 'is', 'a', 'test']
for w in words[:]:
    words.insert(0, w)

for w in words:
    print(w, len)

這是第二個example,當我們需要對原始的array進行操作時,可以使用[:]的操作來copy array的值出來。

sum = 0
for i in range(101):
    sum += i
print(sum)

print((1 + 100) * 100 / 2)

這個就是簡單的1加到100的example,range是由0~100,range在定義上他並不是回傳一個list回來,而是一個function當我們需要取下一位值時再取出,他也可以訂定,起始值,結束值和間隔值,如range(1, 10, 3),他就會依續回傳1, 4, 7,從1開始,不大於10的值,每次加3,間隔值也可以不設,預設是1。

另外,我們也常常需要使用index,這時我們可以使用另一個function enumerate() 。

words = ['this', 'is', 'a', 'test']
for idx, val in enumerate(words):
    print(idx, val)

不過,國小數學有認真學的人,應該都知道有公式可以代,這時時間複雜度就由O(n)變成O(1)了,演算法算是對程式的效能非常重要的概念,而迴圈也通常是程式中最花費時間的部分,可以試著某些方式來進行改善,比如使用HashTable,二分法,Divide & Conqure, or Dynamic Programming等等。


上一篇
[Day15] Kaggle的解題挑戰 2018版 - Python 條件判斷(2)
下一篇
[Day17] Kaggle的解題挑戰 2018版 - Python 迴圈 (2)
系列文
Kaggle的解題挑戰 2018版30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言